	/*
	 * Funcion TEMPLE-SIMULADO (problema, esquema)
			devuelve estado solucion
			entradas:	problema, un problema
						esquema, una aplicacion desde el tiempo a Temperatura
			variables locales:	actual, un nodo
								siguiente, un nodo
								T, una Temperatura probabilidad de paso abajo
		actual <- HACER-NODO (ESTADO-INICIAL[problema])
		para t <- 1 a infinito hacer
			T <- esquema[t]
			si T=0 entonces devolver actual
			siguiente <- un sucesor seleccionado aleatoriamente de actual
			AE <- VALOR[siguiente] - VALOR[actual]
			si AE > 0 entonces actual <- siguiente
			en caso contrario actual <- siguiente solo con probabilidad e^AE/T
	 */	
	public Camino templeSimulado(String ruta, Camino sol, int T0){
		Camino actual=sol, vecino, aux, res=null;
		LectorImagenes li=new LectorImagenes();
		li.getMapaGS(ruta);
		int width = li.getImagen().getWidth(null);
		int height = li.getImagen().getHeight(null);
		Random rd = new Random();
		int T, posX, posY, max=Math.max(width, height),r;
		double AE;
		Posicion p;
		for (int t=1; t <= T0 && res==null ; t++){
			T = T0 - t;
			if (T==0)
				res=actual;
			else{
				posX=rd.nextInt(width);
				posY=rd.nextInt(height);
				p=new Posicion(posX, posY);
				r=rd.nextInt(max/2);
				aux=actual;
				System.out.println("Eliminando a partir de la posicion " + p.toString() + " con un radio " + r);
				aux.eliminaCirculo(p, (long)r);
				vecino=restaurarSolucion(aux, ruta);
				System.out.println("OK");
				AE=vecino.getC() - actual.getC();
				if (AE > 0)
					actual=vecino;
				else{
					if(rd.nextDouble() < Math.pow(Math.E, AE/T))
						actual=vecino;
				}
			}
			//System.out.println(actual.toString());
		}
		return res;
	}